<?php
class AdministracionUsuario extends Seguridad{
	
// 	public function __construct() {
//   		parent::__construct();
//   		parent::chequear();
// // // 		$this->load->model('administracion_model_usuario');
//  		 	}

	public function alta_usuario(){
		parent::chequear();
// 		$t=1;

		if (isset($this->session->userdata['privilegio'])) {
			$t=$this->session->userdata['privilegio'];
			$this->load->model('administracion_model_sede');
			$data['title'] = 'Alta de usuario';
			$data['variablesede']=$this->session->userdata['sede'];
			$data['sed']=$this->administracion_model_sede->devolver_sede();
			$data['tip']=$this->administracion_model_sede->devolver_tipo();
			$data['main_content'] = 'alta_usuario';
			if ($t==1) {
				$data['mostrarr']=true;
			}else{
				$data['mostrarr']=false;
			}
			$this->load->view('main_template',$data);
		}
		
	
	}
	
	public function insertar_usuario(){
		
		$this->load->library('form_validation');
		$this->form_validation->set_rules('nomUser', 'Nombre de usuario', 'required|min_length[3]|max_length[20]|is_unique[tb_usuario.username]|alpha_dash|xss_clean');
		$this->form_validation->set_rules('password', 'Password', 'required|min_length[3]');
		$this->form_validation->set_rules('email', 'E-mail', 'required|min_length[3]|valid_email');
		$this->form_validation->set_rules('apellido', 'Apellido', 'required|min_length[3]|max_length[20]');
		$this->form_validation->set_rules('nombre', 'Nombre', 'required|min_length[3]|max_length[20]|trim');
		
		$this->form_validation->set_message('integer', 'El campo %s debe poseer solo numeros enteros');
		$this->form_validation->set_message('required','El campo %s es obligatorio');
		$this->form_validation->set_message('is_unique', 'El campo %s ya esta registrado');
		$this->form_validation->set_message('valid_email','El campo %s debe ser una direccion de email');
		$this->form_validation->set_message('max_length', 'El Campo %s debe tener un Maximo de %d Caracteres');
		$this->form_validation->set_message('min_length', 'El Campo %s debe tener un Minimo de %d Caracteres');
		$this->form_validation->set_message('alpha','El campo %s tiene caracteres incorrectos');
		$this->form_validation->set_message('alpha_dash','El campo %s tiene caracteres incorrectos');
		$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
		if($this->form_validation->run()==true){
			
			
			$usuario=array(
					'username' => $this->input->post('nomUser'),
					'password' => $this->input->post('password'),
					'email' => $this->input->post('email'),
					'nombre' => $this->input->post('nombre'),
					'apellido' => $this->input->post('apellido'),
					'idsede' => $this->input->post('nombresede'),
					'idtipo' => $this->input->post('nombretipo')
			);
			$this->load->model('administracion_model_usuario');
			if ( $this->administracion_model_usuario->insertar_user($usuario) ){
				redirect('administracionUsuario');
			}
			
		}
		else{
			
			$this->alta_usuario();
		}		
	}
	
	
	public function index(){
// 		$idtipo=1;
// 		$idsede=13;
		parent::chequear();
			$data['title'] = 'Administracion';		
// 			$data['main_content'] = 'homeUsuarioAdministracion';
// 			$this->load->model('administracion_model_usuario');
			if (isset($this->session->userdata['privilegio'])) {
				$data['main_content'] = 'homeUsuarioAdministracion';
				$this->load->model('administracion_model_usuario');
				$idsede=$this->session->userdata['sede'];//idsede=sede
				$idtipo=$this->session->userdata['privilegio'];//idtipo=privilegio
				$data['idusers']=$this->session->userdata['idu'];
				if ($idtipo==1) {
					$data['usuarios'] = $this->administracion_model_usuario->leer_usuario();
					$data['mostrar']=true;
					$data['tipo_id']='0';
					$data['idtipo']=$idtipo;
				
				}else{
					$data['nomsede']=$this->session->userdata['nombresede'];
					$data['tipo_id']=$idtipo;
					$data['usuarios'] = $this->administracion_model_usuario->traer_usuarios_de_sede($idtipo,$idsede);
					$data['mostrar']=false;
				}
				$this->load->view('main_template',$data);
		}
// 			$this->load->view('main_template',$data);
		
	}


	
	public function modificar_usuario($id){
		parent::chequear();
		if(isset($this->session->userdata['privilegio'])){
			$idtip=$this->session->userdata['privilegio'];
			$data['title'] = 'Modificar usuario';
			$data['main_content'] = 'modificar_usuario';
			
			$this->load->model('administracion_model_usuario');
			$this->load->model('administracion_model_sede');
			$data['tip']=$this->administracion_model_sede->devolver_tipo();
			$data['sed']=$this->administracion_model_sede->devolver_sede();
			$data['usuario'] = $this->administracion_model_usuario->traer_usuario($id);
			$data['variablesede']=$this->session->userdata['sede'];
			if ($idtip==1) {
				$data['most']=true;
			}else{if ($idtip==2) {
			
			
				$data['most']=false;
				$data['variablesede']=$this->session->userdata['sede'];
			}
			}
			$this->load->view('main_template',$data);
			
		}
		
		
		
	}
	
	
	
	public function modificar_usuario_bd($id=0){		
		$this->load->library('form_validation');
		$this->form_validation->set_rules('nomUser', 'Nombre de usuario', 'required|min_length[3]|max_length[20]|alpha_dash|xss_clean');
		$this->form_validation->set_rules('password', 'Password', 'required|min_length[3]|max_length[15]');
		$this->form_validation->set_rules('email', 'E-mail', 'required|min_length[3]|valid_email');
		$this->form_validation->set_rules('apellido', 'Apellido', 'required|min_length[3]|max_length[20]|trim');
		$this->form_validation->set_rules('nombre', 'Nombre', 'required|min_length[3]|max_length[20]|trim|trim');
		
		$this->form_validation->set_message('required','El campo %s es obligatorio');
		$this->form_validation->set_message('integer', 'El campo %s debe poseer solo numeros enteros');
		$this->form_validation->set_message('is_unique', 'El campo %s ya esta registrado');
		$this->form_validation->set_message('valid_email','El campo %s debe ser una direccion de email');
		$this->form_validation->set_message('max_length', 'El Campo %s debe tener un Maximo de %d Caracteres');
		$this->form_validation->set_message('min_length', 'El Campo %s debe tener un Minimo de %d Caracteres');
		$this->form_validation->set_message('alpha','El campo %s tiene caracteres incorrectos');
		$this->form_validation->set_message('alpha_dash','El campo %s tiene caracteres incorrectos');
		$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
		$id = $this->input->post('idusuario');
		if($this->form_validation->run()==true){			
			$usuario = array(
 					'username' => $this->input->post('nomUser'),
					'password' => $this->input->post('password'),
					'email' => $this->input->post('email'),
					'nombre' => $this->input->post('nombre'),
					'apellido' =>$this->input->post('apellido'),
					'idsede' =>$this->input->post('nsede'),		
					'idtipo' => $this->input->post('nombretipo')
			);			
			$this->load->model('administracion_model_usuario');
			if($this->administracion_model_usuario->actualiza_usuario($id, $usuario)){
				redirect('administracionUsuario');
			}
				
		}else{
			$this->modificar_usuario($id);
		}
		
	

		
		
// 		$data['title'] = 'Modificar usuario';
// 		$data['main_content'] = 'modificar_usuario';
		
// 		$this->load->model('administracion_model_usuario');
// 		$id = $this->uri->segment(3);
// 		$data['usuario'] = $this->administracion_model_usuario->traer_usuario($id);
		
// 		$this->load->view('main_template',$data);
		
	}
	
	public function eliminar_usuario(){
		$id = $this->uri->segment(3);
		$this->load->model('administracion_model_usuario');
		if( $this->administracion_model_usuario->eliminarUser($id) )
// 			redirect('homeUsuarioAdministracion');
		redirect('administracionUsuario');
	}
	
	
	public function resetearPassword_usuario_bd(){
		$p=$this->uri->segment(4);
		$idUsers=$this->uri->segment(3);
		$usuario = array(
// 				'username' => $this->input->post('nomUser'),
				'password' =>$p,
// 				'email' => $this->input->post('email'),
// 				'nombre' => $this->input->post('nombre'),
// 				'apellido' =>$this->input->post('apellido'),
// 				'sede_idsede' =>$this->input->post('sede'),
		);
		$id = $this->input->post('idusuario');
		
		$this->load->model('administracion_model_usuario');
		if($this->administracion_model_usuario->resetear_password($idUsers,$usuario) ){
		
		redirect('administracionUsuario');
		}
	}
	
	public function administracionUsuarioSede(){
		$data['title'] = 'Administracion';
		$data['main_content'] = 'homeUsuarioAdministracionSede';
	
		$this->load->model('administracion_model_usuario');
		$idsede=2;
		$idtipo=2;
		$data['usuarios'] = $this->administracion_model_usuario->traer_usuarios_de_sede($idtipo,$idsede);
		$this->load->view('main_template',$data);
	}
	
	
public function modificar_usuario_perfil(){
		$this->load->library('session');
		//comprobar nombre
		$nombre = $this->input->post('nombre');
		if( !isset($nombre) || $nombre == false)
		{
			$nombre = $this->session->userdata['nombre'];
		}
	
		//comprobar apellido
		$apellido = $this->input->post('apellido');
		if( !isset($apellido) || $apellido == false)
		{
			$apellido = $this->session->userdata['apellido'];
		}
	
		//comprobar email
		$email = $this->input->post('email');
		if( !isset($email) || $email == false)
		{
			$email = $this->session->userdata['email'];
		}
		
		//comprobar password
		$password = $this->input->post('password');
		if( !isset($password) || $password == false)
		{
			$password = $this->session->userdata['password'];
		}
		$usuario = array(
				'email' => $email,
				'nombre' => $nombre,
				'apellido' => $apellido,
				'password' => $password
		);
	
		$id = $this->input->post('idusuario');
		$this->load->model('administracion_model_usuario');
		$this->administracion_model_usuario->actualiza_usuario($id, $usuario) ;
		$this->load->model('login_model');
		$usern = $this->session->userdata['username'];
		$datos = $this->login_model->valores($usern);
		$sesion_data2 = array('nombre'  => $datos['nombre'],'apellido'  => $datos['apellido'], 'email'  => $datos['email'], 'password'=>$password);
		$this->session->set_userdata($sesion_data2);
		// 		 redirect('/administracionUsuario/administracionU');
		redirect('AdministraPerfil');
	}

	
	
	public function cambiar_pass_perfil(){
		$this->load->library('session');
		//comprobar nombre
		$password = $this->input->post('passn2');
		if( !isset($password))
		{
			$password = $this->session->userdata['password'];
		}
	
		$usuario = array(
				'password' => $password,
		);
	
		$id = $this->session->userdata['idu'];
		$this->load->model('administracion_model_usuario');
		$this->administracion_model_usuario->actualiza_usuario($id, $usuario) ;
		$this->load->model('login_model');
		$usern = $this->session->userdata['username'];
		$datos = $this->login_model->valores($usern);
		$this->session->set_userdata($sesion_data2);
		// 		 redirect('/administracionUsuario/administracionU');
		redirect('AdministraPerfil');
	}
	
	
	
	
}